package com.export.xlsx.utils;

/**
 * Created by zhangls on 2018/1/9 0009.
 */
public final class StringUtils {

    /// 转全角的函数(SBC case) ///
///任意字符串
/// 全角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是：均相差65248 ///

    public static String ToSBC(String input) { //半角转全角：
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 32) {
                c[i] = (char) 12288;
                continue;
            }
            if (c[i] < 127) c[i] = (char) (c[i] + 65248);
        }
        return new String(c);
    }

    /// /// 转半角的函数(DBC case) ///
///任意字符串
/// 半角字符串 ///
///全角空格为12288，半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是：均相差65248 ///
    public static String ToDBC(String input) {
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 12288) {
                c[i] = (char) 32;
                continue;
            }
            if (c[i] > 65280 && c[i] < 65375)
                c[i] = (char) (c[i] - 65248);
        }
        return new String(c);
    }

    public static String getPartId(String str) {
        if ("A1".equals(str)) {
            return "1000";
        } else if ("B1".equals(str)) {
            return "1001";
        } else if ("C1".equals(str)) {
            return "1002";
        } else if ("D1".equals(str)) {
            return "1003";
        } else if ("E1".equals(str) || "E2".equals(str)) {
            return "1004";
        } else if ("F1".equals(str)) {
            return "1005";
        } else if ("G1".equals(str)) {
            return "1006";
        } else if ("H1".equals(str)) {
            return "1007";
        } else if ("J1".equals(str)) {
            return "1008";
        } else if ("K1".equals(str)) {
            return "1009";
        } else if ("L1".equals(str)) {
            return "1010";
        } else if ("M1".equals(str)) {
            return "1011";
        } else if ("N1".equals(str)) {
            return "1012";
        } else if ("P1".equals(str)) {
            return "1013";
        } else if ("Q1".equals(str)) {
            return "1014";
        } else if ("R1".equals(str)) {
            return "1015";
        } else if ("S1".equals(str)) {
            return "1016";
        } else if ("T1".equals(str)) {
            return "1017";
        } else if ("U1".equals(str)) {
            return "1018";
        } else if ("V1".equals(str)) {
            return "1019";
        } else if ("W1".equals(str)) {
            return "1020";
        } else if ("X1".equals(str)) {
            return "1021";
        }
        return null;
    }

    /**
     * 去除字符串中所包含的空格（包括:空格(全角，半角)、制表符、换页符等）
     * @param s
     * @return
     */
    public static String removeAllBlank(String s){
        String result = "";
        if(null!=s && !"".equals(s)){
            result = s.replaceAll("[　*| *| *|//s*]*", "");
        }
        return result;
    }

    /**
     * 去除字符串中头部和尾部所包含的空格（包括:空格(全角，半角)、制表符、换页符等）
     * @param s
     * @return
     */
    public static String trim(String s){
        String result = "";
        if(null!=s && !"".equals(s)){
            result = s.replaceAll("^[　*| *| *|//s*]*", "").replaceAll("[　*| *| *|//s*]*$", "");
        }
        return result;
    }

    public static String getStr(String str){
           return StringUtils.removeAllBlank(str)
                   .replace("？", "")
                   .replace("?", "")
                   .replace("(", "（")
                   .replace(")", "）")
                   .replace("－","-");
    }

    /**
     * 将企业类型中的"台港澳"替换成"港澳台"
     * @param str
     * @return
     */
    public static String replaceComTypeOfGangAoTai(String str){
        return StringUtils.removeAllBlank(str)
                .replace("台港澳","港澳台");
    }


    /**
     * 将含有"年月日"的字符串转换成"-"格式的日期字符串
     * @param originDateStr
     * @return
     */
    public static String convertToDateStr(String originDateStr){
        String finalDateStr = "";

        if(originDateStr.contains("年") && originDateStr.contains("月") && originDateStr.contains("日")){
            finalDateStr = StringUtils.removeAllBlank(originDateStr)
                    .replace("年", "-")
                    .replace("月", "-")
                    .replace("日", "-");

            //将最后的"-"给去掉
            if(finalDateStr.endsWith("-")){
                finalDateStr = finalDateStr.substring(0, finalDateStr.lastIndexOf("-"));
            }
        }

        return finalDateStr;
    }


    public static void main(String[] args) {
        String str = "羚邦星艺文化发展(上海)有限公司";

        String str1 = "　　　　863上海光 电子技术研 究开　发中心     　　　　";
        String comType = "有限责任公司(台港澳与境内合资)";

        //System.out.println(StringUtils.removeAllBlank(str).replace("(", "（").replace(")", "）").replace("－","-"));


        //System.out.printf(str.replace("(", "（").replace(")", "）"));

        System.out.println(StringUtils.replaceComTypeOfGangAoTai(StringUtils.getStr(comType)));

    }
}
